var assert = require('assert');
var should = require('should');
var moment = require('moment');
var util = require('util');
var _ = require('lodash');
var buildModel = require('../../app/models/buildModel');
var buildType = require('../../app/consts/buildType');
var config = require('../config');
var mongoConnector = require('../../app/libs/mongodb/mongoConnector');
var Build = mongoConnector().model('Build');

suite('测试BuildModel', function () {
    var build_model;
    setup(function (done) {
        // Build.remove({
        //     role_id: config.role_id
        // }, function (err) {
        //     if (err) {
        //         return handleError(err);
        //     }

        buildModel.getByRoleId(config.role_id, function (err, model) {
            assert.equal(null, err);
            build_model = model;
            done();
        });
        // });
    });

    suite('getBuild', function () {
        test('get', function (done) {

            // var farm_build = build_model.getBuild(11201);
            // farm_build.addStartExp(550);

            // 增加建筑
            // build_model.addDefBuild(112, 40);

            // 把防御建筑移到背包中
            // build_model.removeInBagDefBuilding(11301);
            // build_model.removeInBagDefBuilding(11201);
            // build_model.addDefBuild(105, 42, 15);
            // build_model.dischargeDefBuiding(42);
            // console.log(build_model.dischargeDefBuiding(42));

            // 背包中移出
            // build_model.giveOutBagDefBuilding(11301, 40);

            build_model.save(function (err) {
                assert.equal(null, err);
                done();
            });
        });
    });

    // suite('获取buildModel', function () {
    //     test('getByRoleId', function (done) {
    //         buildModel.getByRoleId('***', function (err, model) {
    //             done();
    //         });
    //     });
    // });

    // suite('addDefBuild', function () {
    //     test('添加箭塔成功', function (done) {
    //         build_model.addDefBuild(buildType.ARROW_TOWER, 1000);
    //         build_model.save(function (err) {
    //             assert.equal(null, err);
    //             done();
    //         });
    //     });
    // });

    // suite('addDefBuild', function () {
    //     test('添加炮塔成功', function (done) {
    //         build_model.addDefBuild(buildType.CANNON_TOWER, 1000);
    //         build_model.save(function (err) {
    //             assert.equal(null, err);
    //             done();
    //         });
    //     });
    // });

    // suite('addDefBuild', function () {
    //     test('添加冰霜塔成功', function (done) {
    //         build_model.addDefBuild(buildType.ICE_TOWER, 1000);
    //         build_model.save(function (err) {
    //             assert.equal(null, err);
    //             done();
    //         });
    //     });
    // });

    // suite('upgradeBuild', function () {
    //     test('升级建筑成功', function (done) {
    //         build_model.upgradeBuild(1001);
    //         build_model.save(function (err) {
    //             assert.equal(null, err);
    //             done();
    //         });
    //     });
    // });

    // suite('moveBuild', function () {
    //     test('移动建筑成功', function (done) {
    //         build_model.moveBuild(1001, 1000);
    //         build_model.save(function (err) {
    //             assert.equal(null, err);
    //             done();
    //         });
    //     });
    // });

    // suite('getBuildMaxNum', function () {
    //     test('获取建筑最多可建造的数量', function () {
    //         build_model.getBuildMaxNum(buildType.BARRACK).should.eql(2);
    //     });
    // });

    // suite('checkPath', function () {
    //     test('验证路径', function () {
    //         build_model.checkPath().should.eql(true);
    //     });
    // });

    // suite('upgrade', function () {
    //     test('升级建筑', function () {
    //         var build_item = build_model.getBuildByType(buildType.WALL);
    //         build_item.upgrade().should.eql(true);
    //         build_item.setSelectSoldier(1, [1001]);
    //     });
    // });

    // suite('upgrade', function () {
    //     test('升级建筑', function () {
    //         var build_item = build_model.getBuildByType(buildType.CHEST);
    //         build_item.upgrade().should.eql(true);
    //         build_item.move(100);
    //         build_item.setGain(moment());
    //         build_item.getGain();
    //         build_item.getGainSecondInterval();
    //     });
    // });

    // suite('getChestDoubleGainEndTime', function () {
    //     test('获取金矿增益卡相关', function (done) {
    //         var build_item = build_model.getBuildByType(buildType.CHEST);
    //         build_item.getChestDoubleGainEndTime();
    //         build_item.addChestDoubleGainEndTime(2 * 3600);
    //         build_item.isChestDoubleGainEndTime();
    //         build_item.save(function (err) {
    //             assert.equal(null, err);
    //             done();
    //         });
    //     });
    // });

    // suite('getFarmDoubleGainEndTime', function () {
    //     test('获取农场增益卡相关', function (done) {
    //         var build_item = build_model.getBuildByType(buildType.FARM);
    //         build_item.getFarmDoubleGainEndTime();
    //         build_item.addFarmDoubleGainEndTime(2 * 3600);
    //         build_item.isFarmDoubleGainEndTime();
    //         build_item.save(function (err) {
    //             assert.equal(null, err);
    //             done();
    //         });
    //     });
    // });
});
